package com.bzframework.pro.utils;

import lombok.Data;

import java.util.HashMap;
import java.util.Map;

/**
 * @Author bingzhong
 * @Date 2025/4/15 19:58
 * @Description
 */
public class ChannelUtils {


    /**
     * 一级来源
     */
    static Map<String, String> channelMapOneLevel = new HashMap<String, String>(){{
        put("18", "310"); // 失效来源
        put("19", "312"); // 市场新增-渠道
        put("20", "313"); // 市场新增-推广
        put("21", "314"); // 市场新增-市场活动
        put("22", "315"); // 市场新增-集团活动
        put("23", "316"); // 市场新增-员工推荐
        put("24", "317"); // 品牌新增-线上网单
        put("25", "318"); // 品牌新增-call in
        put("26", "319"); // 品牌新增-Walk in
        put("27", "320"); // 团培新增-团培学校
        put("28", "321"); // 拓科
        put("29", "322"); // 学员（家长）转介绍
        put("30", "323"); // 续费
    }};


    /**
     * 二级来源
     */
    static Map<String, String> channelMapTwoLevel = new HashMap<String, String>(){{
        put("19-1", "324"); // 留学
        put("19-2", "478"); // 教培K12
        put("19-3", "497"); // 国际学校老师
        put("19-4", "532"); // 升学招生办
        put("19-5", "553"); // 体制内学校
        put("19-6", "559"); // 教培异业
        put("19-7", "584"); // 小语种作品集
        put("19-8", "606"); // 代理
        put("19-9", "608"); // 业内老师or工作室
        put("20-1", "401"); // 地推发单
        put("20-2", "631"); // 推广Walk in
        put("21-1", "634"); // 老带新校区活动
        put("21-2", "635"); // 赛事活动
        put("21-3", "636"); // 社区活动
        put("21-4", "637"); // 学校社团活动
        put("21-5", "638"); // 异业活动
        put("21-6", "639"); // 择校讲座活动
        put("22-1", "640"); // 研学活动
        put("22-2", "641"); // 普思考试活动
        put("22-3", "642"); // 卡斯营选角
        put("23-1", "625"); // 北雅周爽
        put("23-2", "624"); // 北雅Jason
        put("23-3", "626"); // 咨询部门资源
        put("23-4", "627"); // 市场部门资源
        put("23-5", "628"); // 其他部门老师推荐资源
        put("24-1", "410"); // 自有平台
        put("24-2", "429"); // 三方合作平台
        put("25-1", "643"); // 网络Call in
        put("25-2", "644"); // 口碑介绍Call in
        put("25-3", "649"); // 传单推广Call in
        put("25-4", "650"); // 广告牌Call in
        put("25-5", "651"); // 其他Call in
        put("26-1", "645"); // 网络信息Walk in
        put("26-2", "646"); // 口碑介绍Walk in
        put("27-1", "609"); // 园区团培
        put("27-2", "610"); // 世华学校团培
        put("27-3", "611"); // 北美团培
        put("27-4", "612"); // 园外初中部
        put("27-5", "613"); // 苏城外团培
        put("27-6", "614"); // 园外高中部
        put("27-7", "615"); // 园外团培
        put("29-1", "629"); // 家长转介绍
        put("29-2", "630"); // 学员转介绍
        put("30-1", "616"); // 班课续费
        put("30-2", "617"); // 集训营续费
        put("30-3", "618"); // 退学转入
    }};


    public static ChannelItem getChannel(String categoryId) {
        ChannelItem channelItem = new ChannelItem();
        String[] categoryArray = categoryId.split("-");
        // 处理2级来源
        if (categoryArray.length == 2) {
            String level1 = categoryArray[0];
            for (String channelKey : channelMapOneLevel.keySet()) {

                if (channelKey.equals(level1)) {
                    String channelOne = channelMapOneLevel.get(channelKey);
                    channelItem.setLevel1(channelOne);
                }

            }
            channelItem.setIzLevel2(true);

        }
        // 处理3级来源
        if (categoryArray.length == 3) {

            String level1 = categoryArray[0];
            String level2 = categoryArray[1];
            for (String channelKey : channelMapOneLevel.keySet()) {

                if (channelKey.equals(level1)) {
                    String channelOne = channelMapOneLevel.get(channelKey);
                    channelItem.setLevel1(channelOne);
                }

            }
            String level2Str = level1 + "-" + level2;
            for (String channelKey : channelMapTwoLevel.keySet()) {

                if (channelKey.equals(level2Str)) {
                    String channelOne = channelMapTwoLevel.get(channelKey);
                    channelItem.setLevel2(channelOne);
                }

            }
            channelItem.setIzLevel2(false);

        }

        return channelItem;

    }




    @Deprecated
    static Map<String, String> channelMap = new HashMap<String, String>(){{

        put("1", "0"); // 网络来源
        put("2", "35"); // 地推发单+拉访
        put("3", "44"); // 留学
        put("4", "45"); // 教培K12
        put("5", "64"); // 国际学校老师
        put("6", "65"); // 升学招生办
        put("7", "84"); // 体制内学校
        put("8", "85"); // 活动来源
        put("9", "86"); // 教培异业
        put("10", "87"); // call or walk in
        put("11", "88"); // 老学员再入学
        put("12", "89"); // 团培项目
        put("13", "90"); // 小语种作品集移民学科
        put("14", "91"); // 代理
        put("15", "92"); // 业内老师or工作室
        put("16", "93"); // 员工推荐
        put("17", "94"); // 转介绍
        put("18", "310"); // 失效来源

    }};


    @Deprecated
    public static String getItemIdOneLevel(String categoryId) {

        String[] categoryArray = categoryId.split("-");
        for (String channelKey : channelMap.keySet()) {

            if (channelKey.equals(categoryArray[0])) {
                return channelMap.get(channelKey);
            }

        }
        return null;

    }

    @Data
    public static class ChannelItem {

        private boolean izLevel2;
        private String level1;
        private String level2;
        private String level3;

    }


}
